1. Field of the Invention
The invention relates to lossless data compression and encoding. Specifically, the embodiments of the invention relate to compression that is based on encoding a stream of data based on the difference between consecutive values of the data stream.
2. Background
Printing devices encompass a wide variety of output display devices. These output display devices such as laser printers, bubble jet printers, plotters, image setters and other printing devices produce an image or visual representation on the surface of paper or similar materials. Many printing devices form images on a surface by printing dots corresponding to information contained in a bitmap or pixelmap. A raster printing device, for example, forms an image on a surface by printing dots arranged in rows and columns based upon a corresponding pixelmap.
Applications running on a computer system may generate a number of pages or images that are requested to be printed together. This collected group of images and pages is often referred to as a job. A number of jobs can often be requested in a period of time shorter than each job can be printed. These jobs are often queued to be printed after a previously scheduled job is completed. Jobs may be sent to an intermediate storage device where they are stored until they are sent to the printer.
Pages in a job are often described in a page description language (PDL) which is a high level language for describing objects to be displayed by an output device. These languages are usually interpreted languages that allow for an accurate representation of a page. The stream of data or files that represent a job or the components of a job such as pages, planes and bands are often of a large size. This causes slow transmission of the data and slow processing of the data due to its size.